Collaboration and coordination are increasingly important aspects of the way users produce, process, and consume data. Such collaboration and coordination occurs in a variety of applications such as scientific database management and online internet user activities, for example, organizing and coordination travel plans for multiple users.
Computer programs such as software applications commonly utilize relational databases for processing and storing data. For example, a software application for making airline flight reservations may query relational databases of multiple airlines. A user of the software application may enter desired criteria, such as the date of the flight and the destination, into the software application, and the software application may then query the airline databases to present one or more flight options to the user. The user may, in turn, select one of the options to make a reservation using the software application.
Often times, the user may utilize the software application to coordinate activities of multiple users. For example, both the user and a colleague may wish to travel on the same flight. Typically, this is accomplished by the user and the colleague having to communicate with each other regarding certain information such as convenient flight dates, times, and seat preferences, before the user may enter the criteria into a user interface such that the software application can complete the transaction—either on behalf of himself or on behalf of himself and the colleague. In the event the user books the tickets for himself and the colleague, further communications must occur to sort out the finances. In the event the user and the colleague book the tickets individually, they must arrange to book at about the same time and hope that the desired airline seats do not become reserved. Reserving time for such communications, however, may be inconvenient for the user and the colleague.
Other scenarios present similar problems. For example, there are many other settings in which users may wish to coordinate activities including schedules. College students may want to enroll in the same courses as their friends, busy professionals may desire to schedule joint meetings, wedding guests may desire to purchase gifts in a way that avoids duplication, event planners may desire to gather family members from various locations for a family reunion, etc. Coordination also occurs in massively multiplayer online (“MMO”) games, where players are often interested in developing joint strategies with other players to achieve common objectives.
Despite the plethora of scenarios such as those described above, coordination is not commonly supported by today's computer and software applications. This may partly be due to the fact that the cornerstone of the database community relies on what is known as the ACID properties: Atomicity, Consistency, Isolation, Durability. The ACID properties guarantee logical operations—i.e., database transactions—are processed reliably. Atomicity requires that database modifications must follow an “all or nothing” rule. Each transaction is said to be atomic. If one part of the transaction fails, the entire transaction fails and the database state is left unchanged. Consistency states that only valid data will be written to the database. If, for some reason, a transaction is executed that violates the database's consistency rules, the entire transaction could be rolled back to the pre-transactional state or it is restored to a consistent state. Isolation refers to the requirement that multiple transactions occurring at the same time not impact each other's execution. Each transaction must remain unaware of other concurrently executing transactions, except that one transaction may be forced to wait for the completion of another transaction that has modified data that the waiting transaction requires. Durability ensures that any transaction committed to the database will not be lost. In order to reliably process transactions, ACID supports the use of isolated transactions and isolated transactions create an obstacle to coordinating queries to obtain a result desirable by one or more users.
The technical problem according to the invention relates to the inability to obtain coordinated results from at least two queries. The solution to the technical problem includes the design and development of a computer implemented method that utilizes context data of each query to obtain results coordinated between the queries, i.e., “coordinated results”. Therefore, the invention provides a computer implemented method that facilitates enhanced querying functionality by matching entangled queries to achieve coordinated results.